]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
6 years agost/scroll-bar: Fix horizontal bar in RTL locales
Florian Müllner [Tue, 16 Jun 2020 21:07:08 +0000 (23:07 +0200)]
st/scroll-bar: Fix horizontal bar in RTL locales

As the view now scrolls from right-to-left in RTL locales, the
scroll bar handle should reflect that.

Likewise the event handling needs adjusting as well: Scrolling
left should increase the adjustment value, and clicking the
trough to the left of the handle as well.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1318

6 years agost/scroll-view: Adjust scroll events in RTL locales
Florian Müllner [Tue, 16 Jun 2020 22:46:35 +0000 (00:46 +0200)]
st/scroll-view: Adjust scroll events in RTL locales

In RTL locales, scrolling left should increase the adjustment value.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1318

6 years agost/viewport: Fix horizontal translation in RTL locales
Florian Müllner [Tue, 16 Jun 2020 20:53:37 +0000 (22:53 +0200)]
st/viewport: Fix horizontal translation in RTL locales

In RTL locales, the lowest value should correspond to the right-most
position and vice-versa.

That this went unnoticed for so long shows how we have avoided horizontal
scrolling so far :-)

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1318

6 years agoworkspace: Split WindowPreview into a separate file
Jonas Dreßler [Mon, 15 Jun 2020 21:03:06 +0000 (23:03 +0200)]
workspace: Split WindowPreview into a separate file

The workspace.js file is quite large and is a bit confusing when it
comes to the term "window" in there, because it can either refer to a
WindowPreview of a complete window or to an individual window like an
attached dialog.

So try to avoid that confusion and split the new WindowPreview class and
its WindowPreviewLayout layout manager out into a new windowPreview.js
file.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agoworkspace: Stop exporting window actor in the WindowPreview
Jonas Dreßler [Mon, 8 Jun 2020 08:01:27 +0000 (10:01 +0200)]
workspace: Stop exporting window actor in the WindowPreview

Having a public property exporting the MetaWindow is enough to get the
window actor, too, so remove the public realWindow property and while at
it, rename that property to _windowActor, too.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agoworkspace: Initialize WindowPreview using a MetaWindow
Jonas Dreßler [Mon, 8 Jun 2020 07:58:22 +0000 (09:58 +0200)]
workspace: Initialize WindowPreview using a MetaWindow

MetaWindow is Mutters representation of a window and provides all the
APIs about it, MetaWindowActor is just the ClutterActor that's drawing
that window. So use a MetaWindow to create a WindowPreview instead of
the window actor.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agoworkspace: Set overviewHint on MetaWindow
Jonas Dreßler [Fri, 12 Jun 2020 18:12:11 +0000 (20:12 +0200)]
workspace: Set overviewHint on MetaWindow

We want to stop using the MetaWindowActor for things which are actually
related to the MetaWindow, one more thing where we can change that is
the overviewHint, which is currently added to the MetaWindowActor.

So move that hint to the MetaWindow and stop calling
get_compositor_private() in a few more places.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agoworkspace: Stop using WindowPreview.realWindow in the overview
Jonas Dreßler [Mon, 8 Jun 2020 07:50:41 +0000 (09:50 +0200)]
workspace: Stop using WindowPreview.realWindow in the overview

We can simply get the MetaWindowActor by calling
MetaWindow.get_compositor_private(), so stop accessing the realWindow
property of WindowPreview. For this we also have to make _isMyWindow()
and _isOverviewWindow() take a MetaWindow as an argument instead of a
MetaWindowActor.

Since the WorkspacesThumbnails are also drop targets for WindowPreviews
and their WindowClones also have the public metaWindow property, switch
to using the metaWindow property there, too.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agoworkspace: Only pass MetaWindow to WindowPreviewLayout
Jonas Dreßler [Mon, 8 Jun 2020 07:41:51 +0000 (09:41 +0200)]
workspace: Only pass MetaWindow to WindowPreviewLayout

Since the WindowPreview class rarely needs to handle the actual actor
painting the window preview, refactor the WindowPreviewLayout a bit to
only pass a MetaWindow to its addWindow() and removeWindow() functions.

Also make the getWindows() function return an array of MetaWindows,
which makes the getMetaWindow() function obsolete, so remove that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agoworkspace: Stop using clone terminology in WindowPreviewLayout
Jonas Dreßler [Mon, 8 Jun 2020 07:32:23 +0000 (09:32 +0200)]
workspace: Stop using clone terminology in WindowPreviewLayout

We're going to remove ClutterClones, so call the parameters to
addWindow() and removeWindow() "actor" instead of "clone". Also make the
destroyIds less confusing and rename the actual actor destroy id to
"destroyId", and rename the window actors destroy id to
"windowActorDestroyId".

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agoworkspace: Make some functions in WindowPreview private
Jonas Dreßler [Mon, 8 Jun 2020 13:26:41 +0000 (15:26 +0200)]
workspace: Make some functions in WindowPreview private

Now that the WindowPreview also shows the overlays itself, we can make
some functions private.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agoworkspace: Call _activate() directly when clicking the window preview
Jonas Dreßler [Mon, 8 Jun 2020 12:49:09 +0000 (14:49 +0200)]
workspace: Call _activate() directly when clicking the window preview

We can remove the simply callback function in favour of an anonymous
function here.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agoworkspace: Set WindowPreview offscreen redirect inside constructor
Jonas Dreßler [Thu, 4 Jun 2020 15:15:45 +0000 (17:15 +0200)]
workspace: Set WindowPreview offscreen redirect inside constructor

This can also be moved to constructor, so do it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agoworkspace: Remove slot property of WindowPreview
Jonas Dreßler [Tue, 2 Jun 2020 14:23:59 +0000 (16:23 +0200)]
workspace: Remove slot property of WindowPreview

Since the slot property was only accessed by the old WindowOverlays to
get the position and size of the preview, we can safely stop setting it
and remove that property now.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agoworkspace: Rename WindowClone to WindowPreview
Jonas Dreßler [Mon, 8 Jun 2020 07:23:08 +0000 (09:23 +0200)]
workspace: Rename WindowClone to WindowPreview

Since ClutterClones are going to be removed, let's switch the
terminology here to something that's more understandable and rename the
WindowClone class and its layout manager to
WindowPreview/WindowPreviewLayout.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1307

6 years agost-widget: Use clutter_input_device_get_actor() to get pointer actor
Jonas Dreßler [Thu, 11 Apr 2019 20:32:56 +0000 (22:32 +0200)]
st-widget: Use clutter_input_device_get_actor() to get pointer actor

Use clutter_input_device_get_actor() since it replaces
clutter_input_device_get_pointer_actor().

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1285

6 years agoUpdate Kazakh translation
Baurzhan Muftakhidinov [Mon, 15 Jun 2020 13:38:33 +0000 (13:38 +0000)]
Update Kazakh translation

6 years agowindowManager: Warn when removing old animationInfo
Jonas Dreßler [Tue, 12 May 2020 10:28:03 +0000 (12:28 +0200)]
windowManager: Warn when removing old animationInfo

Now that we properly notify mutter about when a size-change animation
has ended, it should never happen that a new size-change animation is
started without the last one being cancelled (ie. 'kill-window-effects'
being emitted).

This means there should also never be an old animationInfo attached to a
window actor, so warn in case we still find one when starting the
animation.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1251

6 years agowindowManager: Use new mutter API to freeze window actors ourself
Jonas Dreßler [Tue, 12 May 2020 11:50:05 +0000 (13:50 +0200)]
windowManager: Use new mutter API to freeze window actors ourself

We're currently using the hack of telling mutter that our effect is
completed (even though it isn't) in order to unfreeze updates of the
window actor.

This causes a bug with detecting the wl_outputs a window is
visible on, because the MetaWindowActor emits its "effects-completed"
signal too early, making Mutter update the wl_outputs while we're doing
the animation.

Now since meta_wayland_actor_surface_is_on_logical_monitor() uses the
transformed position and size of the MetaSurfaceActor and is being
called right after we setup the animation (but before it actually
starts, that happens at the next paint cycle) it will use a "very wrong"
rectangle: The transformation has been set to move the actor back to its
old position, and while we did already unfreeze updates and called
clutter_actor_set_position() in meta_window_actor_sync_actor_geometry(),
the actual allocation is not updated yet; this makes
clutter_actor_get_transformed_position() return a position including in
the new transformation, but not including the new allocation, and the
rectangle ends up being moved to the next monitor or completely out of
the stage.

To fix this issue properly, we need to decouple unfreezing actor updates
from emitting the "effects-completed" signal, which is now possible with
the new meta_window_actor_freeze() and meta_window_actor_thaw() APIs. So
use those new methods to freeze and thaw actor updates ourselves and
make sure to call shellwm.completed_size_change() only after the
animation has finished.

Mutter MR: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1250

Fixes https://gitlab.gnome.org/GNOME/mutter/-/issues/513

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1251

6 years agowindowManager: Also clear animationInfo when size-changed wasn't emitted
Jonas Dreßler [Tue, 12 May 2020 11:51:27 +0000 (13:51 +0200)]
windowManager: Also clear animationInfo when size-changed wasn't emitted

It might be that we receive a "kill-window-effects" signal between the
emission of the "size-change" and the "size-changed" signal.

In this case we already have the animationInfo attached to the window
actor, so we should also remove it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1251

6 years agowindowManager: Clean up starting of size-change animations a bit
Jonas Dreßler [Tue, 12 May 2020 10:22:52 +0000 (12:22 +0200)]
windowManager: Clean up starting of size-change animations a bit

We can do without having two calls to shellwm.completed_size_change() in
there, so use an early return for all cases.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1251

6 years agoworkspace: Center overlay close button on border using guide actor
Sebastian Keller [Sun, 14 Jun 2020 04:23:33 +0000 (06:23 +0200)]
workspace: Center overlay close button on border using guide actor

This makes use of the invisible actor introduced in the previous commit
to center the close button on the border.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2899

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1313

6 years agoworkspace: Use invisible guide actor to center overlay title on border
Sebastian Keller [Sun, 14 Jun 2020 04:14:57 +0000 (06:14 +0200)]
workspace: Use invisible guide actor to center overlay title on border

Using CSS to center the title actor on the border is a bit ugly, because
it requires the CSS to match the calculations used in chromeHeights().
Also it is not possible to use CSS margins for cases where the position
of the actor is determined at run time, such as for the close button.

Instead use an invisible actor that spans between the horizontal and
vertical center lines of the border as guide when aligning the title
actor.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1313

6 years agoworkspace: Unbreak reposition animation
Florian Müllner [Sat, 13 Jun 2020 23:02:52 +0000 (01:02 +0200)]
workspace: Unbreak reposition animation

Commit 1ea22a5281c broke the window reposition animation when it
based the ::size-changed signal on the layout manager's bounding box
instead of the MetaWindow::size-changed signal.

That's happening because of the combination of:

  1. we adjust to window size changes immediately without animations
  2. closing a window triggers a change to a 0x0 bounding box which
     is not treated as a size change

Fix this by addressing the 2nd factor, and don't treat a change to
a 0x0 bounding box as size change.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2901

6 years agoworkspacesView: Only animate on show() when geometries are already set
Jonas Dreßler [Wed, 20 May 2020 11:39:11 +0000 (13:39 +0200)]
workspacesView: Only animate on show() when geometries are already set

Animating the window clones of the overview requires the fullGeometry
and the actualGeometry to be set, which they won't be when showing the
overview for the first time. So don't even try to animate the window
clones in that case because the geometries will still be null and
accessing them in workspace.js will throw errors.

The workspace views will still get the correct layout as soon as the
allocations happen because syncing the geometries will trigger updating
the window positions. Since animations are disabled for position changes
when syncing the geometry though, we won't get an animation and the
clones will jump into place. That's not a regression though since before
this change we also didn't animate in that case because the geometries
used were simply wrong (the actualGeometry was 0-sized as explained in
the last commit).

If we wanted to fix the initial animation of the overview, we'd have to
always enable animations of the window clones when syncing geometries,
but that would break the animation of the workspace when hovering the
workspaceThumbnail slider, because right now those animations are "glued
together" using the actualGeometry, so they would get out of sync.

The reason there are no errors happening in workspace.js with the
existing code is that due to a bug in Clutter the fullGeometry of
WorkspacesDisplay gets set very early while mapping the WorkspacesViews
(because the overviews ControlsManager gets an allocation during the
resource scale calculation of a ClutterClone, see
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1181), so it
won't be set to null anymore when calling
WorkspacesView.animateToOverview().

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1119

6 years agoworkspacesView: Avoid setting invalid geometries on views
Jonas Dreßler [Wed, 20 May 2020 10:05:04 +0000 (12:05 +0200)]
workspacesView: Avoid setting invalid geometries on views

The fullGeometry and the actualGeometry of the WorkspacesDisplay are set
from the allocation of the overviews ControlsManager and the
WorkspacesDisplay, that means they're only valid after those actors got
their allocations during Clutters allocation cycle.

Since WorkspacesDisplay._updateWorkspacesViews() is already called while
showing/mapping the WorkspacesDisplay, that allocation cycle didn't
happen yet and we end up either setting the geometries of the views to
null (in case of the fullGeometry) or to something wrong (a 0-sized
allocation in case of the actualGeometry).

So avoid setting invalid geometries on the views by initializing both
the fullGeometry and the actualGeometry to null, and then only updating
the geometries of the views after they're set to a correct value.

Note that this means we won't correctly animate the overview the first
time we open it since the animation depends on the geometries being set,
but is being started from show(), which means no allocations have
happened yet. In practice this introduces no regression though since
before this change we simply used incorrect geometries (see the 0-sized
allocation mentioned above) on the initial opening and the animation
didn't work either.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1119

6 years agoUpdate Turkish translation
Emin Tufan Çetin [Sun, 14 Jun 2020 07:52:41 +0000 (07:52 +0000)]
Update Turkish translation

6 years agoworkspace: Remove WindowOverlay in favour of new overlays of WindowClone
Jonas Dreßler [Tue, 2 Jun 2020 11:56:03 +0000 (13:56 +0200)]
workspace: Remove WindowOverlay in favour of new overlays of WindowClone

Start using the new overlays we introduced in the last commit and remove
the WindowOverlay class and the objects for keeping track of them in the
Workspace.

The new layout which doesn't use the -shell-close-overlap CSS property
anymore sligthly changes the position of the close button to be a bit
further away from the actual window.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1298

6 years agoworkspace: Set maxChromeWidth to window clone width
Jonas Dreßler [Thu, 4 Jun 2020 15:39:44 +0000 (17:39 +0200)]
workspace: Set maxChromeWidth to window clone width

So far we allowed the titles of window overlays to expand their width to
be larger than the actual WindowClone, they could expand to the full
size of the Workspace.

Since we're now going to implement those titles as part of the
WindowClone itself, having this feature is no longer possible as easily
as it was before. That's because the clones are stacked according to the
stacking of the actual windows, and since the overlay-elements are
attached to those clones, they will also be shown underneath other
clones.

So stop allowing the titles to expand and limit their size to the width
of the clone, which makes sure titles never get shown above or
underneath other clones.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1298

6 years agoworkspace: Adjust for close button side in chromeWidth
Jonas Dreßler [Mon, 8 Jun 2020 15:52:57 +0000 (17:52 +0200)]
workspace: Adjust for close button side in chromeWidth

When the close button is shown on the left side of the WindowClone, we
also need to return its width in chromeWidth() on the left side instead
of the right side, so do that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1298

6 years agoworkspace: Add window overlay to WindowClone
Jonas Dreßler [Tue, 2 Jun 2020 11:52:33 +0000 (13:52 +0200)]
workspace: Add window overlay to WindowClone

Add the window overlays we're currently showing using the WindowOverlay
class to the WindowClone class and implement them using
ClutterConstraints instead of the old fixed position/size layout, which
had to be used because the workspaces were scaled, and the title and app
icon were kept unscaled using a separate layer.

Specifically, this is done by adding the ClutterClones to a static
container owned by the WindowClone and adding the elements of the
overlay as children to the WindowClone itself. That way the
overlay-elements can use the container as a source for their constraints
and we avoid having to make sure the overlays remain visible above the
ClutterClones.

We're not using the new overlays yet, they're hidden by default and
showOverlay() isn't called anywhere yet.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1298

6 years agoworkspace: Close windows using new layout manager API
Jonas Dreßler [Mon, 8 Jun 2020 12:50:23 +0000 (14:50 +0200)]
workspace: Close windows using new layout manager API

Now that we have a new API to get all the windows and metaWindows from
our layout manager, implement the deleteAll() method of the window clone
using that API instead of looping through the children of the actor and
using the source of the ClutterClone.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1298

6 years agoworkspace: Add API to get windows and metaWindow to WindowCloneLayout
Jonas Dreßler [Mon, 8 Jun 2020 12:47:43 +0000 (14:47 +0200)]
workspace: Add API to get windows and metaWindow to WindowCloneLayout

This will allow us to remove the remaining parts of the WindowClone
looping through children in favour of simply getting an array with the
windows or metaWindows and looping through that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1298

6 years agoutil: Remove unused class CloseButton
Jonas Dreßler [Tue, 2 Jun 2020 14:16:36 +0000 (16:16 +0200)]
util: Remove unused class CloseButton

This looks like it was used to create the close buttons in the overview
at some point, we're no longer using it nowadays though, so remove it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1298

6 years agoUpdate Japanese translation
sicklylife [Thu, 11 Jun 2020 10:27:58 +0000 (10:27 +0000)]
Update Japanese translation

6 years agounlockDialog: Set Switch User Button via _updateUserSwitchVisibility
Chingkai [Sat, 25 Apr 2020 08:29:16 +0000 (16:29 +0800)]
unlockDialog: Set Switch User Button via _updateUserSwitchVisibility

This commit will set the button invisible when the user's can_switch
is false (e.g. when the session is remote) or user-switch-enabled is
disabled.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2687

6 years agoUpdate Japanese translation
sicklylife [Wed, 10 Jun 2020 12:34:12 +0000 (12:34 +0000)]
Update Japanese translation

6 years agoUpdate Japanese translation
sicklylife [Wed, 10 Jun 2020 12:18:32 +0000 (12:18 +0000)]
Update Japanese translation

6 years agooverview: Adapt to MetaBackgroundContent
Georges Basile Stavracas Neto [Tue, 9 Jun 2020 18:51:14 +0000 (15:51 -0300)]
overview: Adapt to MetaBackgroundContent

The properties are now defined in MetaBackgroundContent.
Animate the ClutterContent properties.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1309

6 years agobackground: Adapt to MetaBackgroundContent
Georges Basile Stavracas Neto [Tue, 9 Jun 2020 17:36:21 +0000 (14:36 -0300)]
background: Adapt to MetaBackgroundContent

The properties are now part of MetaBackgroundContent, so set
the properties there instead.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1309

6 years agoiconGrid: Trivial comment cleanup
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 03:36:21 +0000 (00:36 -0300)]
iconGrid: Trivial comment cleanup

There's no PaginatedIconGrid anymore

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Don't fade icons when a folder dialog is open
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 03:33:52 +0000 (00:33 -0300)]
appDisplay: Don't fade icons when a folder dialog is open

The folder dialog itself now has a background, there's no
need to fade the icons anymore.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Fade the dialog background
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 03:31:13 +0000 (00:31 -0300)]
appDisplay: Fade the dialog background

As a last step towards the better app grid, add a semi-transparent
black background to the folder dialog.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Set minRows to 3 in folder dialog grid
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 03:29:35 +0000 (00:29 -0300)]
appDisplay: Set minRows to 3 in folder dialog grid

It gives the folder dialog a better layout overall. This is
going to be replaced in the future by the new icon grid code,
but it's a good improvement to have until there.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Hide folder icon when dialog is open
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 02:24:20 +0000 (23:24 -0300)]
appDisplay: Hide folder icon when dialog is open

In such a way that gives the illusion of the icon becoming
the dialog itself.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Don't change search entry's reactive state
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 01:49:28 +0000 (22:49 -0300)]
appDisplay: Don't change search entry's reactive state

The folder dialog eats all events now, there's no need to
disable the search entry anymore.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Remove unused variable
Georges Basile Stavracas Neto [Thu, 4 Jun 2020 04:37:03 +0000 (01:37 -0300)]
appDisplay: Remove unused variable

As the title says.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Fix misnamed variable
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 01:37:50 +0000 (22:37 -0300)]
appDisplay: Fix misnamed variable

This should have been renamed to "displayingDialog" by
commit 7781f973f2f.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Don't connect to 'space-closed'
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 01:36:23 +0000 (22:36 -0300)]
appDisplay: Don't connect to 'space-closed'

This signal doesn't exist anymore.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Popdown folder dialog on DnD
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 01:32:14 +0000 (22:32 -0300)]
appDisplay: Popdown folder dialog on DnD

So that we're still able to drag icons out of folders, and to the
Dash. Wait 600ms (MENU_POPUP_TIMEOUT) before popping it down.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Remove event blocker
Georges Basile Stavracas Neto [Thu, 4 Jun 2020 04:50:49 +0000 (01:50 -0300)]
appDisplay: Remove event blocker

It is unused now.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Move click action to dialog
Georges Basile Stavracas Neto [Thu, 4 Jun 2020 04:49:14 +0000 (01:49 -0300)]
appDisplay: Move click action to dialog

Now that the folder dialog covers the whole primary
monitor, it eats all input events, and doesn't allow
the event blocker to detect clicks.

Move the click action to the folder dialog itself, and
popdown the dialog if a click is triggered on the dialog
(but not on any children).

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Move adaptToSize call to FolderView
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 01:10:04 +0000 (22:10 -0300)]
appDisplay: Move adaptToSize call to FolderView

There is absolutely no need to handle this in the dialog
itself.

Move the call to adaptToSize into FolderView.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Zoom dialog child in and out
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 01:05:11 +0000 (22:05 -0300)]
appDisplay: Zoom dialog child in and out

Instead of zooming the dialog itself, zoom its only
child, which is the "actual" user-visible dialog.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Make AppFolderDialog subclass St.Bin
Georges Basile Stavracas Neto [Fri, 5 Jun 2020 01:00:10 +0000 (22:00 -0300)]
appDisplay: Make AppFolderDialog subclass St.Bin

It'll simplify things a bit.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Make folder dialog cover the whole screen
Georges Basile Stavracas Neto [Thu, 4 Jun 2020 04:43:11 +0000 (01:43 -0300)]
appDisplay: Make folder dialog cover the whole screen

Future commits will improve input handling of the folder
dialog, and they'll require the dialog to cover the whole
primary monitor.

Add another internal, center-aligned container to the
folder dialog, and make it cover the whole available area.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Constrain dialog to primary display
Georges Basile Stavracas Neto [Thu, 4 Jun 2020 04:37:48 +0000 (01:37 -0300)]
appDisplay: Constrain dialog to primary display

Much like the overview controls themselves are tied to the
primary display, constrain the folder dialog to the primary
display as well.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agoappDisplay: Add folder dialog to overview group
Georges Basile Stavracas Neto [Thu, 4 Jun 2020 04:37:31 +0000 (01:37 -0300)]
appDisplay: Add folder dialog to overview group

Right now, the app folder dialog isn't really a dialog,
since it is actually added to the AppDisplay. Furthermore,
having it added in AppDisplay may mess up with its sizing
calculations, since AppDisplay has a ClutterBinLayout and
the folder dialog has a fairly large minimum size.

Add the folder dialog to the overview group. Next commits
will adjust various actors to be able to better handle it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1301

6 years agost/entry: Fix leak when copying or cutting text using shortcuts
Sebastian Keller [Sun, 7 Jun 2020 22:42:00 +0000 (00:42 +0200)]
st/entry: Fix leak when copying or cutting text using shortcuts

clutter_text_get_selection() creates a copy of the selected text which
gets passed to st_clipboard_set_text() which creates its own copy. The
copy returned by clutter_text_get_selection() however never got free'd.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1306

6 years agoUpdated Spanish translation
Daniel Mustieles [Mon, 8 Jun 2020 14:10:16 +0000 (16:10 +0200)]
Updated Spanish translation

6 years agoUpdate Catalan translation
Jordi Mas [Sat, 6 Jun 2020 12:56:58 +0000 (14:56 +0200)]
Update Catalan translation

6 years agoUpdate Ukrainian translation
Yuri Chornoivan [Sat, 6 Jun 2020 12:54:13 +0000 (12:54 +0000)]
Update Ukrainian translation

6 years agodateMenu: Add "Events" section
Florian Müllner [Thu, 14 May 2020 20:24:36 +0000 (22:24 +0200)]
dateMenu: Add "Events" section

Events have a clear and obvious connection to the calendar, and similar
to the Clocks and Weather sections there's a strong link to a particular
application.

Adding them as another section to the right-hand side of the calendar
therefore presents a viable alternative to the old events section.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1282

6 years agomessageList: Remove setDate() method
Florian Müllner [Tue, 18 Dec 2018 10:26:30 +0000 (11:26 +0100)]
messageList: Remove setDate() method

Since the events section has been removed and visibility no longer
depends on the date, it's not used by anything anymore.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1282

6 years agocalendar: Simplify placeholder
Florian Müllner [Tue, 18 Dec 2018 10:20:42 +0000 (11:20 +0100)]
calendar: Simplify placeholder

Without the events section in the message list, the placeholder can only
reflect whether or not there are notifications.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1282

6 years agocalendar: Don't restrict section visibility by date
Florian Müllner [Tue, 18 Dec 2018 10:16:24 +0000 (11:16 +0100)]
calendar: Don't restrict section visibility by date

The idea behind hiding the notifications and media section on days
other than today was that they represent present activity together
with today's events, in contrast to past and future events from
other days.

After events were moved out of the message list, that behavior is
no longer useful: We just guarantee that the left-hand side of the
calendar will always be empty when browsing the calendar.

Adjust to that by removing the limitation by date.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1282

6 years agocalendar: Remove events section from message list
Florian Müllner [Mon, 17 Dec 2018 18:08:38 +0000 (19:08 +0100)]
calendar: Remove events section from message list

While treating notifications as a type of present event was a neat
concept, there are some issues with it that we never managed to
address (not least the inability to "open" an event).

So remove the current events section from the message list; we'll
bring back events in a different form later.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1282

6 years agocalendar-server: Notify HasCalendar changes when updating views
Florian Müllner [Thu, 4 Jun 2020 20:14:15 +0000 (22:14 +0200)]
calendar-server: Notify HasCalendar changes when updating views

The HasCalendar property reflects whether there are any views, and views
change either when clients appear/disappear or when the time range changes.

However we currently only emit the PropertiesChanged signal for the former,
fix that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1300

6 years agocalendar-server: Move method
Florian Müllner [Thu, 4 Jun 2020 20:11:42 +0000 (22:11 +0200)]
calendar-server: Move method

We'll need to call it from app_update_views(), so move it up to make
it available to that function without a prior declaration.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1300

6 years agoshell-mime-sniffer: Ignore invalid file content type
Marco Trevisan (Treviño) [Fri, 5 Jun 2020 14:12:58 +0000 (16:12 +0200)]
shell-mime-sniffer: Ignore invalid file content type

The shell mime sniffer goes through all the files in a directory,
however in case a file content type is not recognized, the GIO function
g_file_info_get_content_type() may return NULL, causing a crash when
looking up into the content type tables, as they are supposed to contain
strings only and they use `g_str_hash` has func, which doesn't support
NULL values.

So, in case we get an invalid content type, let's just ignore it,
without adding it to the cache as we do in the nautilus code that was
inspiring the sniffer.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2643

6 years agoUpdate Chinese (China) translation
Boyuan Yang [Fri, 5 Jun 2020 09:02:40 +0000 (09:02 +0000)]
Update Chinese (China) translation

6 years agoworkspace: Remove no longer valid comment
Jonas Dreßler [Tue, 2 Jun 2020 08:29:19 +0000 (10:29 +0200)]
workspace: Remove no longer valid comment

This comment is no longer correct, we're not inserting any actors here
to adjust for the window border, but we're modifying the allocation of
the children to adjust for that border.

Since that happens in the layout manager anyway, remove the comment
here.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1297

6 years agoworkspace: Use generic _addWindow function to add new clones
Jonas Dreßler [Sun, 31 May 2020 21:15:06 +0000 (23:15 +0200)]
workspace: Use generic _addWindow function to add new clones

Now that we handle all ClutterClones belonging to the WindowClone pretty
much the same, we can add a generic _addWindow function to WindowClone
which creates the ClutterClone and adds it to the layout manager.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1297

6 years agoworkspace: Implement windowCenter using bounding box
Jonas Dreßler [Sun, 31 May 2020 20:48:28 +0000 (22:48 +0200)]
workspace: Implement windowCenter using bounding box

This isn't quite the same as the allocation, but it's what the workspace
actually wants to use given that we use the bounding box of the
WindowClone for all the layout calculation.

So instead of calculating the windowCenter in the WindowClone, make use
of the bounding-box property of the layout manager and return the center
point of that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1297

6 years agoworkspace: Use bounding-box property from layout manager
Jonas Dreßler [Sun, 31 May 2020 20:47:27 +0000 (22:47 +0200)]
workspace: Use bounding-box property from layout manager

Make use of the new bounding-box property we introduced for the
WindowClones layout manager in the last commit.

With this we can remove all the bounding box calculation code from the
WindowClone class and simply use the "notify::bounding-box" signal to
notify changes to our size. To make sure users of the WindowClone don't
break, we now have to convert the layout managers ClutterActorBox in our
getter function to a JS object.

Since we now also don't have to connect to the "destroy" signal of the
attached dialogs anymore, we can remove _disconnectSignals() and only
listen to "destroy" of the toplevel window.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1297

6 years agoworkspace: Track windows in WindowClone layout manager
Jonas Dreßler [Mon, 1 Jun 2020 12:41:25 +0000 (14:41 +0200)]
workspace: Track windows in WindowClone layout manager

Move the tracking of the bounding box and all the layout related things
out of the WindowClone class and into the layout manager. This allows
the layout manager to keep track of its windows itself and simply notify
the new bounding-box property in case that box changes.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1297

6 years agoUpdated Spanish translation
Daniel Mustieles [Thu, 4 Jun 2020 07:15:53 +0000 (09:15 +0200)]
Updated Spanish translation

6 years agoenvironment: Add Math.clamp
Georges Basile Stavracas Neto [Tue, 2 Jun 2020 03:41:43 +0000 (00:41 -0300)]
environment: Add Math.clamp

The good old clamp function, now part of the Math family.
Clamp is happy after so many years of loneliness.

This is a strict implementation of the draft ECMAScript
proposal.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1295

6 years agoviewSelector: Make sure it's invisible when overview is hidden
Georges Basile Stavracas Neto [Tue, 2 Jun 2020 17:21:02 +0000 (14:21 -0300)]
viewSelector: Make sure it's invisible when overview is hidden

Instead of overriding the hide() method, use the vfunc to
reset, and hide the workspaces display too.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1295

6 years agoviewSelector: Rename show to animateToOverview
Georges Basile Stavracas Neto [Tue, 2 Jun 2020 03:59:27 +0000 (00:59 -0300)]
viewSelector: Rename show to animateToOverview

The same reasoning as the previous commits.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1295

6 years agoworkspacesView: Override vfunc_hide
Georges Basile Stavracas Neto [Tue, 2 Jun 2020 17:15:45 +0000 (14:15 -0300)]
workspacesView: Override vfunc_hide

Override the hide vfunc instead of the plain hide() method.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1295

6 years agoworkspacesView: Rename show to animateToOverview
Georges Basile Stavracas Neto [Mon, 1 Jun 2020 15:20:44 +0000 (12:20 -0300)]
workspacesView: Rename show to animateToOverview

WorkspacesDisplay is a ClutterActor subclass, and overriding
the show and hide methods require chaining up, otherwise the
actor isn't actually shown or hidden.

To avoid clashing with the pre-existing show method, rename
to animateToOverview.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1295

6 years agoworkspace: Increase window clone fade duration to 200 ms
Jonas Dreßler [Tue, 2 Jun 2020 12:01:32 +0000 (14:01 +0200)]
workspace: Increase window clone fade duration to 200 ms

The current value of 100 ms is barely noticable and looks very abrupt,
use 200 ms instead which make it feel like an actual transition.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1296

6 years agoBump version to 3.37.2
Florian Müllner [Tue, 2 Jun 2020 19:48:02 +0000 (21:48 +0200)]
Bump version to 3.37.2

Update NEWS.

6 years agonotificationDaemon: Try harder to find a matching app
Florian Müllner [Fri, 29 May 2020 19:51:14 +0000 (21:51 +0200)]
notificationDaemon: Try harder to find a matching app

Unlike the desktop-entry hint, the app name is not optional. That
doesn't mean that we'll be able to match it to a .desktop file,
but we can at least try if we fail to match on PID or desktop-entry.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1291

6 years agoworkspace: Position clones using width and height instead of scale
Jonas Dreßler [Sun, 1 Sep 2019 09:49:58 +0000 (11:49 +0200)]
workspace: Position clones using width and height instead of scale

Since we now have a layout manager for the WindowClone that allows
allocating it a size that isn't the absolute size of the window, we can
now give the WindowClone an artificial size and it will get scaled
accordingly.

So make use of that and stop positioning WindowClones using fixed
position and scale and use a fixed position and fixed size instead. This
will make it easier to use a ClutterLayoutManager to allocate the
WindowClones, because layout managers should only set the allocation of
their children, not the scale.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1294

6 years agoworkspace: Use boundingBox to get absolute width and height of window
Jonas Dreßler [Sun, 31 May 2020 21:33:00 +0000 (23:33 +0200)]
workspace: Use boundingBox to get absolute width and height of window

Since we're going to override the fixed width and height of the
ClutterActor the WindowClone is subclassing, remove those confusing
getter methods for width and height and switch to the public boundingBox
for getting that information.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1294

6 years agoworkspace: Use boundingBox instead of getOriginalPosition()
Jonas Dreßler [Sun, 31 May 2020 21:19:59 +0000 (23:19 +0200)]
workspace: Use boundingBox instead of getOriginalPosition()

The getOriginalPosition() API of WindowClone can easily be replaced by
using the existing boundingBox property, which reflects the windows
bounding box in absolute coordinates. This property is also used
everywhere else in the Workspace object, so we can use it here, too.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1294

6 years agoworkspace: Allow allocating smaller sizes for window clones
Jonas Dreßler [Mon, 1 Jun 2020 12:36:08 +0000 (14:36 +0200)]
workspace: Allow allocating smaller sizes for window clones

Change the preferred size functions of the layout manager of window
clones to allow allocating smaller sizes, too. Also scale down the
allocation sizes of the ClutterClones our allocate implementation so
the ClutterClones will scale their texture accordingly.

This will enable us to position the window clones using their allocation
size instead of their scale, which is necessary when introducing a new
ClutterLayoutManager that positions the window clones.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1294

6 years agoRevert "workspace: Animate window clones using translation properties"
Jonas Dreßler [Sat, 30 May 2020 13:23:41 +0000 (15:23 +0200)]
Revert "workspace: Animate window clones using translation properties"

We're going to add a ClutterLayoutManager responsible for allocating the
WindowClones. Since layout managers should only set the allocation of
actors, not the translation or scale, we need to position the
WindowClones using their x, y, width and height properties.

The first step for this is to revert this commit, which switched from
setting fixed positions on WindowClones to using the translation
properties.

This reverts commit 8929c89d1fbbdd7b150b3d46b485b2db732cfb00.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1294

6 years agolookingGlass: Add actor tree inspector
Georges Basile Stavracas Neto [Sun, 31 May 2020 20:31:48 +0000 (17:31 -0300)]
lookingGlass: Add actor tree inspector

Being able to visualize the actor tree is a handy feature
to have, specially when debugging the hierarchy.

Add a new "Actors" tab to the Looking Glass with the actor
tree inspector. The tree is cleared on unmap to not get
heavy on the number of actors.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1292

6 years agoUpdated Slovenian translation
Matej Urbančič [Mon, 1 Jun 2020 20:25:53 +0000 (22:25 +0200)]
Updated Slovenian translation

6 years agoworkspace: Also hide attached dialogs in WindowClone from picking
Jonas Dreßler [Sun, 31 May 2020 21:05:45 +0000 (23:05 +0200)]
workspace: Also hide attached dialogs in WindowClone from picking

As explained in the comment in _init() of WindowClone, we hide the
actual clone from picking so it doesn't interfere with XDND.

This description applies to the clones of the attached dialogs just as
well though, so hide the clones of attached dialogs from picking, too.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1293

6 years agopadOsd: Apply specific CSS to Button/Leader SVG classes
Carlos Garnacho [Fri, 29 May 2020 15:12:09 +0000 (17:12 +0200)]
padOsd: Apply specific CSS to Button/Leader SVG classes

Applying a fill operation on the Leader line path seems to close
it, resulting in filled polygon. Bug or not this is not the intended
result here, we can do less ambiguously by not specifying the fill
CSS property to the Leader class.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2570
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290

6 years agopadOsd: Keep label coordinates in image coordinates
Carlos Garnacho [Fri, 29 May 2020 14:59:46 +0000 (16:59 +0200)]
padOsd: Keep label coordinates in image coordinates

Apply the necessary transforms to map those coordinates to actor
positions in the allocate phase. This all fits since it's the place
where we do know the size the actor will have.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290

6 years agopadOsd: Cache label coordinates/arrangements
Carlos Garnacho [Fri, 29 May 2020 14:07:28 +0000 (16:07 +0200)]
padOsd: Cache label coordinates/arrangements

This is actually static for a given PadDiagram, as it always represents
a single device.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2570
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290

6 years agopadOsd: Only allocate child labels within allocate vfunc
Carlos Garnacho [Fri, 29 May 2020 14:05:57 +0000 (16:05 +0200)]
padOsd: Only allocate child labels within allocate vfunc

Make both start/stop edition and label updates queue a relayout, and
only deal with child allocations in the allocate method.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290

6 years agopadOsd: Drop needless call
Carlos Garnacho [Fri, 29 May 2020 13:59:32 +0000 (15:59 +0200)]
padOsd: Drop needless call

If we got this far, we are dealing with an already known label.
There's no need for this check.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290

6 years agopadOsd: Use map to store misc action label data
Carlos Garnacho [Fri, 29 May 2020 13:53:33 +0000 (15:53 +0200)]
padOsd: Use map to store misc action label data

We'll be adding more stuff here, so it's a bit inconvenient to keep
it an array.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290

6 years agopadOsd: Move all coord/existence checks to _addLabel()
Carlos Garnacho [Fri, 29 May 2020 13:43:55 +0000 (15:43 +0200)]
padOsd: Move all coord/existence checks to _addLabel()

Drops some repetitive code. Also rely completely on the label/leader
elements being found in order to find buttons/rings/strips.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290